pcworld online logo

▌nceleme: Visual Basic 5.0

Birkaτ hafta ÷nce MicrosoftÆun dⁿzenledi≡i bir kursa kat²lma ■ans² yakalad²m. ▐ans diyorum τⁿnkⁿ kurs, Mart ay²n²n sonlar²nda τ²kmas² ve bⁿyⁿk yank²lar uyand²rmas² beklenen Visual Basic 5.0Ʋn yeni ÷zelliklerini ÷≡retme amaτl²yd². 3 gⁿn sⁿren kursta, daha ÷nce test etti≡im ve τok etkilendi≡im VB 5.0 Control Creation EditionÆdan arabirim d²■²nda bamba■ka bir VBÆile kar■²la■t²m.

Bu yaz²da Visual Basic 5.0 ile ilgili tⁿm yenilikleri bulamayacaks²n²z, fakat yeni VBÆnin ÷zelliklerini g÷rⁿrken, MicrosoftÆun Internet stratejilerinde ne kadar ciddi oldu≡unun bir kez daha fark²na varacaks²n²z, bir programlama dilinden ÷teye gidilen Visual Basic 5.0Æda kullan²c²n²n i■inin bir yandan ne kadar kolay bir dⁿzeye indirildi≡ini g÷rⁿrken ayn² zamanda kompile olaylar²n nas²l ⁿstesinden gelindi≡ine de ■ahit olacaks²n²z.

Arabirimdeki de≡i■iklikler

Visual Basic 5.0Ʋ ilk τal²■t²rd²≡²n²zda tasar²m²n oldukτa de≡i■ti≡ini fark ediyorsunuz. Microsoft, 97 ad² alt²nda τ²kard²≡² tⁿm programlarda kulland²≡² τarp²c² tasar²m² yeni VBÆde de kullanm²■. De≡i■iklik sadece menⁿ pencereleri ve farkl² butonlarla s²n²rl² de≡il, art²k formlar² tasarlarken bir ContainerƲn d²■²na τ²kam²yorsunuz, tⁿm i■lemleri bir MDI form iτerisinde gerτekle■tiriyorsunuz.

Sayfaya ilk bakt²≡²n²zda "Form Layout Window" ve "Form Editor" adl² iki yeni pencereye rastl²yorsunuz. ▌τerisinde kⁿτⁿk bir pencere resmi bulunan "Form Layout Window" sayesinde art²k formlar²n ekran²n neresinde g÷rⁿnmesini istiyorsan²z kolayca oraya ta■²yabiliyorsunuz.

Ayn² zamanda Format menⁿsⁿnde de bir kopyas²n² bulabilece≡iniz Form Editor ise birden fazla kontolⁿ ayn² anda biτimlendirmek, formun dⁿzenini sa≡lamak iτin kullan²l²yor. Visual BasicÆin ÷nceki sⁿrⁿmlerinde kulland²≡²n²z birτok kontrolⁿ Properties kutucu≡u yoluyla de≡i■tirme imkan² Form Edit÷rⁿ sayesinde τok daha esnek bir hale getirilmi■.

VBÆnin her sⁿrⁿmⁿnde az τok de≡i■ikli≡e u≡rayan Properties kutusu VB5.0 ile bamba■ka bir g÷rⁿnⁿm kazanmam²■ ama i■levselli≡i artt²r²lm²■, yeni kutunun en gⁿzel ÷zelli≡i listeden seτilen kontrol ÷zelliklerinin k²sa aτ²klamalar²n² kutun hemen alt²nda bir pencerede g÷rebilmeniz. Properties kutusu ayr²ca isim ve kategorilere g÷re ayr²lm²■, kullan²c² kendi iste≡ine g÷re kontrol ÷zeliklerini harf s²ras²na veya kategorilere g÷re listeleyebiliyor.

Kod penceresine ilk bak²ld²≡²nda her zamanki gibi sol tarafta kontrol sa≡ tarafta ÷zellik kutular²n² g÷rⁿyorsunuz, "bir kaτ sat²r kod yazal²m bakal²m" dedi≡inizde ise bⁿtⁿn i■ler de≡i■iyor, τⁿnkⁿ VB yazd²≡²n²z ilk kontrol isminde veya komutÆta size bir sⁿrpriz haz²rlam²■ oluyor. Belki de yeni VBÆnin en can al²c² ÷zelliklerinden biri olan kod yard²m² gerτekten sⁿper tasarlanm²■, kullan²c² bir kontrol ismi girdi≡inde VB kontrol ile ilgili kullanabilece≡iniz tⁿm ÷zellikleri bir araya getiriyor ve bir liste haz²rl²yor, programc²ya sadece ok tu■lar²yla uygun ÷zelli≡i bulup ENTER ile kodlar²n aras²na eklemek kal²yor. Pencereye bir komut girildi≡inde ise VB hemen ilgili komut iτin bir yard²m baloncu≡u τ²kar²yor.

Kod yard²m² sadece kontroller ve komutlar iτin de≡il tⁿm s²n²flar, de≡erler gibi VBÆnin tⁿm bile■enleri iτin geτerli. VB 4.0 ile gelen altyordamlar²n τizgi ile ayr²lma ÷zelli≡i VB5Æde default olarak geliyor.

Yap²sal De≡i■iklikler

MicrosoftÆun Visual Basic tak²m² program² oldukτa de≡i■ik bir yap²ya sokmu■, VB5Æi di≡erlerinden farkl² k²lan tek mant²k asl²nda ActiveX kontrolleri ve bu kontrollerin Internet ve Intranet ortamlar²nda kullan²labilmesini iken, MicrosoftÆun bu yolda yapt²≡² de≡i■iklikler program²n sadece arabiriminin de≡il felsefesini de biraz de≡i■tirmi■ gibi g÷rⁿnⁿyor.

Programlar art²k bir proje gibi de≡il de bir "GRUP" gibi g÷rⁿnⁿyor, kod a■amas²nda yazd²≡²n²z tⁿm ActiveX kontrolleri, d÷kⁿmanlar², s²n²flar ve formlar VB5Æde bir grup gibi g÷rⁿnⁿyor. VB5 tⁿm bir projeyi kaydetmek istedi≡inizde projenin soyad²n² VBG olarak at²yor. Grup mant²≡² iτerisinde kontrolleri ve di≡er bile■enleri ba■ka projelerde veya tek ba■²na kullanabilseniz bile gruplar, ÷rne≡in bir ActiveX kontrolⁿ bulunamad²≡²nda hata veriyor ve τal²■m²yor.

Programlar²n²z²n tⁿm hiyerar■isini her zamanki gibi Project penceresinde g÷rebiliyor ve de≡i■tirebiliyorsunuz, her ActiveX d÷kⁿman², s²n²f, form ve ileride de≡inece≡imiz "Property Page" yarat²ld²≡² anda burada beliriyor.

Kontrol ÷zelliklerini "Expose Etmek"
Bir Visual Basic kontrolⁿnⁿ seτti≡inizde ve properties kutusuna bakt²≡²n²zda onun kullanabilece≡iniz tⁿm ÷zelliklerini g÷rⁿrsⁿnⁿz. Kendi tasarlad²≡²n²z kontroller iτin de de≡i■en bir ■ey yok. Kontrol, tasar²m a■amas²ndayken tⁿm ÷zellikleri properties kutucu≡unda beliriyor, fakat kontrolⁿ form ⁿzerine yerle■tirdi≡inizde i■ler de≡i■iyor τⁿnkⁿ kontrolⁿn sadece renk boyu gibi temel ÷zelliklerini listede g÷rebiliyorsunuz. MicrosoftÆun amac² son kullan²c²n²n bir kontrolⁿn tⁿm ÷zelliklerini de≡il sadece programc²n²n tayin etti≡i ÷zellikleri ÷zellikleri g÷rebilmesini sa≡lamak. Bu da Visual Basic 5Ædeki baz² komutlar ve sihirbazlarla sa≡lanm²■. Menⁿlerden bulaca≡²n²z "ActiveX Control Wizard" ile kontrolde program²n²z taraf²ndan kullanaca≡²n²z ÷zellikleri seτebilir yani kontrol ÷zelliklerinin baz²lar²n² expose edebilirsiniz.

Bir kontrolⁿ expose etti≡inizde a■a≡²daki gibi kodlar ortaya τ²kacakt²r. Get Color ve Let Color kontrol ÷zelliklerinin form iτinden hem okunmas²n² hem de de≡i■tirilmesini sa≡lamak amac²yla kullan²lm²■t²r.

Option Explicit

Public Property Get Color() As Long
    Color = BackColor
End Property

Public Property Let Color(NewValue As Long)
    BackColor = NewValue
End Property

Private Sub UserControl_Initialize()

End Sub
Property Page
Yukar²da belirtti≡imiz gibi sadece programc²n²n kullan²lmas²n² istedi≡i ÷zellikler properties kutucu≡unda g÷rⁿnecek ve program τal²■²rken de≡i■tirilebilecektir. Expose edilen her bir ÷zellik ayn² zamanda Property Page denilen ve Properties kutucu≡una τok benzeyen bir kutucu≡a yerle■tirilebilir. Nedir Property Page? Microsoft, programc²lar²n tasarlad²klar² uygulamaya tam olarak hakim olmalar²n² istemi ve onlara bir τok seτenek vermi■. Property Page, programc²n²n en τok kulland²≡² ÷zellikleri bir araya getirmesini sa≡lamak amac²n² ta■²yan bir araτ. Expose etti≡iniz veya kontrol ile standart olarak gelen tⁿm ÷zellikleri kodlar arac²l²≡²yla yada VB sihirbazlar²yla Propert PageÆlere eklemek mⁿmkⁿn.

Program iτerisinde bir kontrol en fazla 1 property pageÆe sahip olabilirken projede istedi≡iniz kadar property page kullanabilirsiniz.

Visual BasicÆde yeni bir fonksiyon: enumerate
Bir de≡i■kene atanabilen tⁿm de≡erleri teker teker saymak anlam²na gelen "enumerate" olay² MS Visual C++ gibi gⁿτlⁿ programlama dillerinde τok ÷nceleri kullan²lmaya ba■lansa da Visual BasicÆe hiτ bir zaman dahil edilmemi■ti. VB5 ile birlikte ENUM fonksiyonunu APIÆlerden τa≡r²lmas²na izin verilmi■.

A■a≡²daki kⁿτⁿk program fonksiyonun yapabileceklerinin en gⁿzel kan²t². Form ⁿzerinde bir liste kutusu bir de komut butonu yaratt²ktan sonra a■a≡p²daki kodlar² girin. Program, Windows iτinde aτ²k olan tⁿm pencereleri, aτ²klamalar²n² ve kodlar²n² liste kutusuna yazacakt²r.

Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, _
ByVal lParam As Long) As Long

Function enumerate(ByVal xhwnd As Long, ByVal lret As Long) As Boolean
If lret = 0 Then
enumerate = False
Else
Form1.List1.AddItem CStr(xhwnd)
enumerate = True
End If
End Function


Private Sub Command1_Click()
Dim x As Integer
x = EnumWindows(AddressOf enumerate, 5)

Select Case x
    Case 0
        MsgBox "Hata olu■tu"
    Case Else
        MsgBox "Tⁿm uygulamalardaki pencere say²s² " & List1.ListCount
    End Select
End Sub

▌lk ActiveX uygulamas²

VB5 iτerisinde tasarlad²≡²n²z kontrolleri Internet ortam²na aktarabilece≡inizi s÷ylemi■tik. Internet ile ha■²r ne■ir olduysan²z mutlaka bilgisayar²n²za ActiveX kontrolⁿnⁿ yⁿklemek isteyen bir site ile kar■²la■m²■s²n²zd²r. Explorer kontrolⁿ aτmak istedi≡inde "Installing Components..." yaz²s²n² durum τubu≡una yerle■tirir. E≡er merak ediyorsan²z siz de bir ActiveX kontrolⁿ yaratabilir ve Internet Explorer web taray²c²n²z arac²l²≡²yla yaratt²≡²n²z kontrolⁿ izleyebilirsiniz. (Netscape ne ActiveX kontrollerini ne de VBScriptÆi henⁿz desteklemiyor)

╓ncelikle VB aτ²ld²≡²nda yeni bir ActiveX kontrolⁿ yarat²n ve bunun iτerisine rastgele i■ler yapan bir buton v.s. yerle■tirin. Bundan sonra yeni bir form yarat²n ve arkada kalan ActiveX kontrolⁿnⁿ "silmeden tamamen KAPATIN", kontrol τobu≡unda silik olan bir buton, renklenecek ve kullan²labilir hale gelecektir. Bu butona basarak formunuzun ⁿstⁿne gidin ve sa≡ tu■a bas²l² olarak formun ⁿzerine bir kare τizin. ▐u anda kendi yaratt²≡²n²z ve MicrosoftÆun liste kutusu, klas÷r kutusu gibi ve ayn² kategoriye giren bir ActiveX kontrolⁿnⁿ formunuzun ⁿstⁿne yerle■tirdiniz. VB5 ayr²ca kontrolleri derleyerek OCX haline getirmenizi ve sonradan formlar²n²z²n iτinde bunlar² tekrar kullanabilmenize izin vermektedir.

Bu i■lemlerden sonra VB projenizi DENEME.VBG olarak kaydedin ve "Application Setup Wizard"² τal²■t²r²n. Bu program size ne tip bir uygulama yapmak istedi≡inizi sordu≡unda ona ActiveX uygulamas² olarak cevap verin ve DENEME.VBGÆyi seτerek i■leme ba■lay²n. Tⁿm i■lemler bitti≡inde program² derlendi≡iniz dizinde bir CAB uzant²l² bir de HTM uzant²l² ili dosya ile kar■²la■acaks²n²z. HTM dosyas²n²n iτeri≡ine bakt²≡²n²zda VB taraf²ndan otomatik olarak yaz²lm²■ olan a■a≡²dakine benzer kodlarla kar■²la■acaks²n²z.

<OBJECT ID="UserControl1" WIDTH=187 HEIGHT=115 CLASSID="CLSID:1E00EB36-8FAE-11D0-96A2-0080ADAAB4E4" CODEBASE="DENEME1.CAB#version=1,0,0,0"> </OBJECT> </plaintext> CLASSID ifadesi haz²rlayaca≡²n²z her ActiveX kontrolⁿ iτin, hatta kontrolⁿ her derledi≡inizde farkl² olacakt²r, CODEBASE ise her zaman tasarlad²≡²n²z projenin ad²n² ta■²yacakt²r. CLASSID ile kontrolⁿn iτerisindeki numaran²n tutmamas² durumunda ise Internet Explorer bunu anlayacak ve kontrolⁿ g÷rⁿntⁿlemeyecektir. <p> Nihayet HTM sayfas²n² Explorer ile g÷rⁿntⁿledi≡inizde kontrolⁿn ayn² Visual Basic formunda τal²■t²≡² gibi τal²■t²≡²na ■ahit olacaks²n²z. En sonunda Internet ⁿzerinde de τal²■abilen bir uygulama geli■tirdiniz. <hr> </plaintext></body></html>